package com.hz.springboot02.utils;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 公共返回类
 * @param <T>
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MessageJson<T> {
    private Integer code;//页面状态码
    private String msg;//状态码描述
    private T data;//json数据

    public MessageJson(Integer code, String msg){
        this.code = code;
        this.msg = msg;
    }

    public static MessageJson error(Integer code,String msg){
        return new MessageJson(Constant.ERROR,"操作失败！");
    }
    public static MessageJson success(Integer code,String msg){
        return new MessageJson(Constant.SUCCESS,"操作成功！");
    }

    public static <T> MessageJson success(Integer code, String msg, T data){
        return new MessageJson(code,msg,data);
    }

    public static <T> MessageJson successOrError(T data){
        if (data == null) {
            // 如果数据为null，返回错误响应
            return new MessageJson(Constant.ERROR, "操作失败", null);
        } else {
            // 如果数据不为null，返回成功响应
            return new MessageJson(Constant.SUCCESS, "操作成功", data);
        }

    }
    public static MessageJson success(){
        return new MessageJson(Constant.SUCCESS,"操作成功！");
    }
    public static <T> MessageJson success(T data){
        return new MessageJson(Constant.SUCCESS,"登录成功！",data);
    }
    public static MessageJson error(){
        return new MessageJson(Constant.ERROR,"操作失败！");
    }
    public static <T> MessageJson error(T data){
        return new MessageJson(Constant.ERROR,"登录失败！",data);
    }


}
